home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / utility / mu17_ext.zip / LOGIN.BAK < prev    next >
Text File  |  1994-03-07  |  3KB  |  104 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #include <exec/ports.h>
  6. #include <exec/memory.h>
  7. #include <exec/types.h>
  8. #include <exec/interrupts.h>
  9. #include <devices/input.h>
  10. #include <intuition/intuition.h>
  11. #include <proto/all.h>
  12. #include <clib/exec_protos.h>
  13. #include <clib/alib_protos.h>
  14. #include <clib/intuition_protos.h>
  15.  
  16. #include "headers/global.h"
  17. #include "headers/deamon.h"
  18. #include "headers/talkto_proto.h"
  19. /*#include "headers/login.h"*/
  20. #include "headers/error_proto.h"
  21.  
  22.  
  23.  
  24. static const char __Version[]=LOGINVERST;
  25.  
  26. extern void     ButtonSwap(void);
  27. void        INITKillButtons(void);
  28. void        KillButtons(void);
  29. void        FINALRestoreButtons(void);
  30. void        RestoreButtons(void);
  31.  
  32. struct IOStdReq        *inputReqBlk;
  33. struct MsgPort        *inputPort;
  34. struct Interrupt    *inputHandler;
  35. UBYTE            device;
  36.  
  37. void KillButtons() 
  38. {
  39.     inputHandler->is_Code = ButtonSwap;
  40.     inputHandler->is_Data=NULL;
  41.     inputHandler->is_Node.ln_Pri=100;
  42.     inputHandler->is_Node.ln_Name=LOGINVERST;
  43.     inputReqBlk->io_Data=(APTR)inputHandler;
  44.     inputReqBlk->io_Command=IND_ADDHANDLER;
  45.     DoIO((struct IORequest *)inputReqBlk);
  46.     
  47. }
  48.  
  49. void INITKillButtons() 
  50. {
  51.     if (inputPort = CreatePort(NULL,NULL)) {
  52.         if (inputHandler=AllocMem(sizeof(struct Interrupt),MEMF_PUBLIC+MEMF_CLEAR)){
  53.             if (inputReqBlk=(struct IOStdReq *)CreateExtIO(inputPort,sizeof(struct IOStdReq))) {
  54.                 if (!(device = OpenDevice("input.device",NULL,(struct IORequest *)inputReqBlk,NULL))) {
  55.                     inputHandler->is_Code = ButtonSwap;
  56.                     inputHandler->is_Data=NULL;
  57.                     inputHandler->is_Node.ln_Pri=100;
  58.                     inputHandler->is_Node.ln_Name=LOGINVER;
  59.                     inputReqBlk->io_Data=(APTR)inputHandler;
  60.                     inputReqBlk->io_Command=IND_ADDHANDLER;
  61.                     DoIO((struct IORequest *)inputReqBlk);
  62.                 }
  63.                 else {
  64.                     Error("Could not open input.device");
  65.                     DeleteExtIO((struct IORequest *)inputReqBlk);
  66.                     exit(10);
  67.                 }
  68.             }
  69.             else {
  70.                 Error("Could not create IORequest");
  71.                 FreeMem(inputHandler,sizeof(struct Interrupt));
  72.                 exit(10);
  73.             }
  74.         }
  75.         else {
  76.             Error("could not allocate interrupt struct Memory");
  77.             DeletePort(inputPort);    
  78.             exit(10);
  79.         }
  80.         
  81.     }
  82.     else {
  83.         Error("could not create message port");
  84.         exit (10);
  85.     }
  86. }
  87.  
  88. void RestoreButtons()
  89. {
  90.     inputReqBlk->io_Data=(APTR)inputHandler;
  91.     inputReqBlk->io_Command=IND_REMHANDLER;
  92.     DoIO((struct IORequest *)inputReqBlk);
  93. }
  94.  
  95. void FINALRestoreButtons()
  96. {
  97.     inputReqBlk->io_Data=(APTR)inputHandler;
  98.     inputReqBlk->io_Command=IND_REMHANDLER;
  99.     DoIO((struct IORequest *)inputReqBlk);
  100.     DeleteExtIO((struct IORequest*)inputReqBlk);
  101.     FreeMem(inputHandler,sizeof(struct Interrupt));
  102.     DeletePort(inputPort);
  103. }
  104.